/***************************************************************
 *  Copyright (c) 2007 by GroupMe! Team (www.groupme.net)
 *  All rights reserved
 *
 *  This file is part of the GroupMe! Project. You can utilize
 *  software of the GroupMe! project under the terms of the 
 *  GNU Lesser General Public License as published by the
 *  Free Software Foundation in version 2.1.
 * 
 *  The GNU Lesser General Public License can be found at:
 *  http://www.gnu.org/licenses/lgpl.html
 *
 *  This copyright notice MUST APPEAR in all copies of the file!
 ***************************************************************/
package net.groupme.model;

import net.groupme.exceptions.UpdateFailedException;

/**
 * 
 * This interface defines the Style object in the GroupMe! project. A Style
 * object defines the basic appearance of a GroupVisualization
 * {@link net.groupme.model.GroupVisualization}.
 * 
 * @author Mischa Frank, <a
 *         href="mailto:code@planetfrank.net">code@planetfrank.net</a>
 * 
 * @version 0.1a, created on 30.04.2007
 * 
 */
public interface Style extends Identifiable {

	/**
	 * This method returns the current backgroundimage of the Style.
	 * 
	 * @return backgroundimage
	 */
	public String getBackgroundImage();

	/**
	 * This method returns the current backgroundcolor of the Style.
	 * 
	 * @return backgroundcolor
	 */
	public String getBackgrundColor();

	/**
	 * This method returns the name of the Style.
	 * 
	 * @return name
	 */
	public String getName();

	/**
	 * This method sets the current backgroundcolor of the Style.
	 * 
	 * @param color
	 * @throws UpdateFailedException
	 */
	public void setBackgroundColor(String color) throws UpdateFailedException;

	/**
	 * This method sets the current backgroundimage of the Style.
	 * 
	 * @param image
	 * @throws UpdateFailedException
	 */
	public void setBackgroundImage(String image) throws UpdateFailedException;

	/**
	 * This method sets the name of the Style.
	 * 
	 * @param name
	 * @throws UpdateFailedException
	 */
	public void setName(String name) throws UpdateFailedException;
}
